
/**
 * 接口
 */
import axios from "axios";
import Encryption from './../encrypt'

// 创建axios实例
let service = axios.create({
  // axios中请求配置有baseURL选项，表示请求URL公共部分
  // baseURL: process.env.VUE_APP_BASE_URL,
  // 超时
  timeout: 20000
});

// 添加请求拦截器
service.interceptors.request.use( config => {

  if(config.headers.encrypt == '2') {
    let query = Encryption({
      word: JSON.stringify(config.data),
      type: 'AES_RSA_Encrypt'
    });
    config.data = query;
    return config;

  }else if(config.headers.encrypt == '3') {
    let query = Encryption({
      word: JSON.stringify(config.data),
      type: 'RSAEncrypt'
    });
    config.data = query;
    return config;
    
  }else {
    return config
  };

  

}, error => {
  return Promise.reject(error);
});

// 添加响应拦截器
service.interceptors.response.use( res => {
  
  if(res.headers.encrypt == '2') {   

    if (res.data && res.data.code == '200' && res.data.data) {
      let result = Encryption({
        word: res.data.data,
        type: 'AESDecrypt'
      });
      try{
        res.data.data= result ? JSON.parse(result) : "";
      }catch(e){
        console.log(e)
      }
    }
    return res;

  }else if(res.headers.encrypt == '3') {

    if (res.data && res.data.code == '200' && res.data.data) {
      let result = Encryption({
        word: res.data.data,
        type: 'RSADecrypt'
      });
      try{
        res.data.data= result ? JSON.parse(result) : "";
      }catch(e){
        console.log(e)
      }
    }
    return res;

  }else {
    return res
  };

}, error => {

  return Promise.reject(error);

});

export default service